package com.dgz.test.controller;

import com.alibaba.cloud.ai.dashscope.api.DashScopeApi;
import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatOptions;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: DongGuoZhen
 * @Date: 2025/07/22/13:08
 * @Description:
 */
// 对话模型 文本生文本
@RestController
@RequestMapping("/chat-model")
public class ChatModelController {

    private ChatModel chatModel;

    public ChatModelController(@Qualifier("dashscopeChatModel") ChatModel chatModel) {
        this.chatModel = chatModel;
    }

    @RequestMapping("/model")
    public String chat(String input) {
        DashScopeChatOptions options = DashScopeChatOptions.builder()
//                调整模型参数 温度 温度越高，模型输出的随机性越高，但结果越不固定
//                top-p 概率 概率越高，模型输出的概率越高，但结果越不固定
//                .withTemperature(0.7)
//                .withTopP(0.7)
                .withMaxToken(1500) // 最大输出长度
                .build();
        Prompt prompt = new Prompt(input,options);
        ChatResponse response = chatModel.call(prompt);
        return response.getResult().getOutput().getText();
    }

}
